import 'dart:async';

/// 通用 RPC 客户端接口
abstract class RpcClient {
  /// 调用远程方法，返回 Future
  Future<dynamic> call(
    String method, {
    Map<String, dynamic>? params,
    Duration? timeout,
  });

  /// 发送通知（无返回值）
  void notify(String method, {Map<String, dynamic>? params});

  /// 注册本地方法，供远程调用
  void register(String method,
      FutureOr<dynamic> Function(Map<String, dynamic> params) handler);

  /// 释放资源
  void dispose();
}
